On the Assessment of Pointcut Design in Evolving Aspect-Oriented Software
نویسندگان
چکیده
The pointcut expression (PCE) is a key mechanism in enabling Aspect-Oriented Programming (AOP) (Kiczales et al. 1997) to improve the localization of crosscutting concerns. PCEs quantify over well-defined points in the execution of the program called join points. A join point shadow, on the other hand, refers to base-code corresponding to a join point (Xu and Rountev 2008), i.e., a point in the code where the compiler may perform the weaving (Masuhara et al. 2003). Advice joins at these points to allow the crosscutting concerns to be composed in an appropriate manner. PCEs need to be well-designed to ensure that they are correct in terms of identifying relevant join points to make certain the crosscutting concerns are composed correctly. Furthermore, PCEs should be robust in the midsts of base-code alterations. That is, changes to the base-code can lead to join points incorrectly falling in our out of scope of the pointcut expressions. Such situations are problematic in that they can cause crosscutting concerns to be composed incorrectly. If undetected, this could cause the composed program to behave unexpectedly, thus causing errors to occur. PCEs that result in such unexpected behavior of the composed program due to evolution are often referred to as “fragile” (Koppen and Stoerzer 2004). The skill required to design a robust PCE, especially in languages such as AspectJ (Kiczales et al. 2001), is often considered a “dark-art”, as well as associated with many common pitfalls (Colyer et al. 2004). Typically, a number of alternative PCEs exist that are equivalent in terms of their
منابع مشابه
Evolving Pointcut Definition to Get Software Evolution
In this paper, we have briefly analyzed the aspect-oriented approach with respect to the software evolution topic. The aim of this analysis is to highlight the aspect-oriented potentiality for software evolution and its limits. From our analysis, we can state that actual pointcut definition mechanisms are not enough expressive to pick out from design information where software evolution should ...
متن کاملA Classification of Pointcut Language Constructs pdfauthor
Aspect-oriented systems provide pointcut languages in order to specify selection criteria for join points which in turn will be adapted. However, a closer look into current pointcut languages reveals that there are large differences among them. Consequently different aspect-oriented system permit to specify different selection criteria. This also means that it is in general hard to state whethe...
متن کاملDataflow Pointcut in Aspect-Oriented Programming
A dataflow-based pointcut is proposed for aspect-oriented programming (AOP) languages. The pointcut specifies where aspects should be applied based on the origins of values. It is designed to be compatible with the other kinds of pointcuts in existing AOP languages. Primary application fields of the pointcut are the aspects in which flow of information is important, such as security. This paper...
متن کاملPointcut Design with AODL
The designing of pointcuts is a crucial step in AspectOriented software development. Pointcuts decide the places where aspects interact with the base system. Without designing these pointcuts properly, the weaving process of aspects with the base system cannot be modelled efficiently. A good design of pointcuts can ensure proper identification of join points, clear representation of advice-poin...
متن کاملA UML Notation for Aspect-Oriented Software Design
This position paper presents a UML notation for designing aspect-oriented applications. It is extracted from our experiences when building the JAC framework and from the concepts dened in the AspectJ language or in Aspectual Components. This notation is a proposal for a rst step towards a high-level designing graphical language that can be used when building aspect-oriented applications. Moreov...
متن کامل